#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>

#define SERIAL_PORT "/dev/ttyS0" // 串口设备
#define BUFFER_SIZE 1024

void configure_serial_port(int fd) {
    struct termios options;
    tcgetattr(fd, &options);
    options.c_cflag = B115200 | CS8 | CLOCAL | CREAD; // 设置波特率和数据位
    options.c_iflag = IGNPAR; // 忽略奇偶校验
    options.c_oflag = 0; // 不使用输出处理
    options.c_lflag = 0; // 不使用本地模式
    tcflush(fd, TCIFLUSH);
    tcsetattr(fd, TCSANOW, &options);
}

void send_audio_data(int fd) {
    FILE *audio_file = fopen("audio.raw", "rb"); // 打开音频文件
    if (!audio_file) {
        perror("Failed to open audio file");
        return;
    }

    char buffer[BUFFER_SIZE];
    size_t bytes_read;
    while ((bytes_read = fread(buffer, 1, BUFFER_SIZE, audio_file)) > 0) {
        write(fd, buffer, bytes_read); // 发送音频数据
    }

    fclose(audio_file);
}

int main() {
    int fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY);
    if (fd == -1) {
        perror("Failed to open serial port");
        return 1;
    }

    configure_serial_port(fd);
    send_audio_data(fd);
    close(fd);
    return 0;
} 